package com.dzxcqmxm.servlet;

import com.dzxcqmxm.Dao.UserDao;
import com.dzxcqmxm.Dao.impl.UserDaoImpl;
import com.dzxcqmxm.JB.User;

import javax.servlet.ServletContext;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;

/**
 * 就是一个超级普通的登录页面
 *
 * 当密码和用户名都是admin的时候，才是进入管理员后台管理系统
 * 其他的我们就进入用户系统即可
 */

public class loginServlet extends HttpServlet {
    @Override
    protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
        doGet(req,resp);
    }

    @Override
    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        //执行dao里边的方法准备
        User user = new User();
        UserDao dao = new UserDaoImpl();

        //获取我输入的值
        user.setUserName(new String(request.getParameter("UserName" ).getBytes("iso-8859-1"),"UTF-8"));
        user.setUserPwd(new String(request.getParameter("UserPwd" ).getBytes("iso-8859-1"),"UTF-8"));

        //先把输入的赋值给a和b，用于进入管理员页面
        String a = user.getUserName();
        String b = user.getUserPwd();
        /**
         * 测试我从jsp里拿到用来做判断的值
         */
        System.out.println("打印a：：："+a);
        System.out.println("打印b：：："+b);

        //ServletContext 上下文
        ServletContext context = this.getServletContext();
        //数据
        String username=a;
        //将数据保存在ServletContext中，参数为键值对(名，对象）
        context.setAttribute("username",a);

        try {
            user=dao.findUserByUserName(user.getUserName());
            System.out.println("看一下user，数据库里来的是否为空"+user);
        } catch (Exception e) {
            e.printStackTrace();
        }


        System.out.println("测试数据库里的username"+user.getUserName());
        System.out.println("测试数据库里的userpwd"+user.getUserPwd());


        //处理业务逻辑
        if("admin".equals(a)&&"admin".equals(b)){
            System.out.println("已经实现管理员登录");
            response.sendRedirect("/dzxc/admin/adminShouYe.jsp");
            /**
             * 这里我打算重定向或者请求转发到管理员页面
             * 为了了防止空指针错误，再登录失败的时候，直接先来一个空值条件
             *
             */

        }else if(user.getUserName()==null||user.getUserPwd()==null){
            System.out.println("用户名/密码输入错误");
            request.setAttribute("result","<h4>"+"用户名/密码输入错误"+"<br>"+"请重新输入！"+"</h4>");
            request.getRequestDispatcher("/login/login.jsp").forward(request,response);

        }else if(user.getUserName().equals(a)&&user.getUserPwd().equals(b)){//这里我打算从用户的表那里拿数据，也就是用户名和密码的数据
            System.out.println("欢迎你："+user.getUserName());
            response.sendRedirect("/dzxc/findAllphotoServlet");

        }else {
            /**
             * 这里重定向到登录页面并且显示密码错误什么的。
             */
            request.setAttribute("result","<h4>"+"用户名/密码输入错误"+"<br>"+"请重新输入！"+"</h4>");
            request.getRequestDispatcher("/login/login.jsp").forward(request,response);

        }

    }


}
